package com.cysoft.third.echarts.component.tooltip;

import lombok.Data;

/**
 * @author 玖零
 * @version v0.0.1
 * @project cysoft-third-echarts
 * @package com.cysoft.third.echarts.component.tooltip
 * @date 2025/3/12 10:54
 * @desc 坐标轴指示器配置
 */
@Data
public class TooltipAxisPointer {

    /**
     * 指示器类型
     * 可选：'line', 'shadow', 'none', 'cross'
     * 默认值：'line'
     */
    private String type = "line";

    /**
     * 指示器的坐标轴
     * 可选：'x', 'y', 'radius', 'angle', 'auto'
     * 默认值：'auto'
     */
    private String axis = "auto";

    /**
     * 是否自动吸附到点上
     */
    private Boolean snap;

    /**
     * 坐标轴指示器的 z 值
     */
    private Integer z;

    /**
     * 坐标轴指示器的文本标签
     */
    private TooltipLabel label;

    /**
     * 直线指示器样式
     */
    private TooltipLineStyle lineStyle;

    /**
     * 阴影指示器样式
     */
    private TooltipShadowStyle shadowStyle;

    /**
     * 十字准星指示器样式
     */
    private TooltipCrossStyle crossStyle;

    /**
     * 是否开启动画
     * 默认值：true
     */
    private Boolean animation = true;

    /**
     * 动画阈值
     * 默认值：2000
     */
    private Integer animationThreshold = 2000;

    /**
     * 初始动画时长
     * 默认值：1000
     */
    private Object animationDuration = 1000;

    /**
     * 初始动画缓动效果
     * 默认值：'cubicOut'
     */
    private String animationEasing = "cubicOut";

    /**
     * 初始动画延迟
     */
    private Object animationDelay = 0;

    /**
     * 数据更新动画时长
     * 默认值：200
     */
    private Object animationDurationUpdate = 200;

    /**
     * 数据更新动画缓动效果
     * 默认值：'exponentialOut'
     */
    private String animationEasingUpdate = "exponentialOut";

    /**
     * 数据更新动画延迟
     */
    private Object animationDelayUpdate = 0;
}
